package com.bestcem.xm.ticket.mq.receiver.biz;

import com.bestcem.xm.ticket.service.dto.OrgCreatedMessage;
import com.bestcem.xm.ticket.service.dto.mq.*;
import org.springframework.messaging.support.GenericMessage;

import java.util.List;
import java.util.function.Consumer;

public interface TicketConsumers {
    /**
     * 工单预警触发队列消息
     */
    Consumer<GenericMessage<TicketStatusUpdateDto>> ticketRuleTriggered();

    /**
     * 工单二次投放队列消息
     */
    Consumer<GenericMessage<DeliverAgainDTO>> ticketDeliverAgain();

    /**
     * 问卷创建队列消息
     */
    Consumer<GenericMessage<NotificationCreateDto>> projectCreated();

    /**
     * 奖励通知-工单通知触发队列消息
     */
    Consumer<GenericMessage<NotificationTriggerDTO>> notificationTrigger();

    /**
     * 用户邮箱删除队列消息
     */
    Consumer<GenericMessage<List<String>>> smtpDeleted();


    /**
     * 租户组织创建队列消息
     */
    Consumer<GenericMessage<OrgCreatedMessage>> userOrgCreated();

    /**
     * 移除微信用户订阅的所有问卷
     */
    Consumer<GenericMessage<String>> wechatUnsubscribe();

    /**
     * 计算周期行任务通知 发送提醒消息 延时MQ
     */
    Consumer<GenericMessage<TicketSendDTO>> ticketSendNotify();

    /**
     * 工单流转 发送提醒消息 延时MQ
     */
    Consumer<GenericMessage<FollowOverdueDTO>> ticketOverDue();

    /**
     * 答卷提交
     */
    Consumer<GenericMessage<TicketConfigCheckDTO>> surveyRespondentSubmit();
}
